home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / unix_shell.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  5.2 KB  |  146 lines

  1. //Language: Unix shell
  2. //Copyright (c) 1992-2002 Altium Limited             
  3. //All rights reserved.                               
  4. //http://www.dream-com.com                           
  5. //contact@dream-com.com                              
  6.  
  7. // states
  8. State=snormal
  9. State=sstring1
  10. State=sstring2
  11. State=sstring3
  12. State=scomment1
  13. State=scomment2
  14. // tokens
  15. Token=tnone
  16. Token=tstring
  17. Token=tcomment
  18. Token=tident
  19. Token=tinteger
  20. Token=tfloat
  21. Token=tresword
  22. Token=tassembler
  23. Token=turl
  24. Token=twhitespace
  25. Token=tdirective
  26. //delims
  27. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  28.  
  29. // reswords
  30. snormal 'alias'      snormal tresword
  31. snormal 'bg'         snormal tresword
  32. snormal 'bind'       snormal tresword
  33. snormal 'break'      snormal tresword
  34. snormal 'builtin'    snormal tresword
  35. snormal 'case'       snormal tresword
  36. snormal 'cd'         snormal tresword
  37. snormal 'command'    snormal tresword
  38. snormal 'continue'   snormal tresword
  39. snormal 'declare'    snormal tresword
  40. snormal 'dirs'       snormal tresword
  41. snormal 'disown'     snormal tresword
  42. snormal 'do'         snormal tresword
  43. snormal 'done'       snormal tresword
  44. snormal 'echo'       snormal tresword
  45. snormal 'elif'       snormal tresword
  46. snormal 'else'       snormal tresword
  47. snormal 'enable'     snormal tresword
  48. snormal 'esac'       snormal tresword
  49. snormal 'eval'       snormal tresword
  50. snormal 'exec'       snormal tresword
  51. snormal 'exit'       snormal tresword
  52. snormal 'export'     snormal tresword
  53. snormal 'fc'         snormal tresword
  54. snormal 'fg'         snormal tresword
  55. snormal 'fi'         snormal tresword
  56. snormal 'for'        snormal tresword
  57. snormal 'function'   snormal tresword
  58. snormal 'getopts'    snormal tresword
  59. snormal 'hash'       snormal tresword
  60. snormal 'help'       snormal tresword
  61. snormal 'history'    snormal tresword
  62. snormal 'if'         snormal tresword
  63. snormal 'in'         snormal tresword
  64. snormal 'jobs'       snormal tresword
  65. snormal 'kill'       snormal tresword
  66. snormal 'let'        snormal tresword
  67. snormal 'local'      snormal tresword
  68. snormal 'logout'     snormal tresword
  69. snormal 'popd'       snormal tresword
  70. snormal 'printf'     snormal tresword
  71. snormal 'pushd'      snormal tresword
  72. snormal 'pwd'        snormal tresword
  73. snormal 'read'       snormal tresword
  74. snormal 'readonly'   snormal tresword
  75. snormal 'return'     snormal tresword
  76. snormal 'select'     snormal tresword
  77. snormal 'set'        snormal tresword
  78. snormal 'shift'      snormal tresword
  79. snormal 'shopt'      snormal tresword
  80. snormal 'suspend'    snormal tresword
  81. snormal 'test'       snormal tresword
  82. snormal 'then'       snormal tresword
  83. snormal 'time'       snormal tresword
  84. snormal 'times'      snormal tresword
  85. snormal 'trap'       snormal tresword
  86. snormal 'type'       snormal tresword
  87. snormal 'typeset'    snormal tresword
  88. snormal 'ulimit'     snormal tresword
  89. snormal 'umask'      snormal tresword
  90. snormal 'unalias'    snormal tresword
  91. snormal 'unset'      snormal tresword
  92. snormal 'until'      snormal tresword
  93. snormal 'wait'       snormal tresword
  94. snormal 'while'      snormal tresword
  95.  
  96. // numbers
  97. snormal [1-9][0-9]*                            snormal  tinteger
  98. snormal 0x[0-9A_F]+                            snormal  tinteger
  99. snormal 0X[0-9A_F]+                            snormal  tinteger
  100. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  101. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  102.  
  103. //idents
  104. snormal   [.-/A-Z_a-z~][.-9A-Z_a-z~]*  snormal   tident
  105.  
  106. //white space
  107. snormal #32*                      snormal   twhitespace
  108.  
  109. //comments
  110. snormal     \#                      scomment1  tcomment
  111. scomment1   [#1-#255]*              snormal    tcomment
  112. scomment1   $                       snormal    tcomment
  113.  
  114. snormal   {\<\<EOF}               scomment2 tcomment
  115. scomment2 [^{EOF}]*               scomment2 tcomment
  116. scomment2 E[^O]*                  scomment2 tcomment
  117. scomment2 O[^F]*                  scomment2 tcomment
  118. scomment2 F*                      scomment2 tcomment
  119. scomment2  {EOF}                  snormal   tcomment
  120.  
  121. //strings
  122. snormal    \"                     sstring1   tstring
  123. sstring1   [^\"]*                 sstring1   tstring
  124. sstring1   \"                     snormal    tstring
  125. sstring1   \"\"                   sstring1   tstring
  126. sstring1   \\                     sstring1   tstring
  127. sstring1   \\\"                   sstring1   tstring
  128. sstring1   $                      snormal    tstring
  129.  
  130. snormal    \'                     sstring2   tstring
  131. sstring2   [^\']*                 sstring2   tstring
  132. sstring2   \'                     snormal    tstring
  133. sstring2   \'\'                   sstring2   tstring
  134. sstring2   \\                     sstring2   tstring
  135. sstring2   \\\'                   sstring2   tstring
  136.  
  137. sstring2   $                      snormal    tstring
  138.  
  139. snormal    \`                     sstring3   tstring
  140. sstring3   [^\`]*                 sstring3   tstring
  141. sstring3   \`                     snormal    tstring
  142. sstring3   \`\`                   sstring3   tstring
  143. sstring3   \\                     sstring3   tstring
  144. sstring3   \\\`                   sstring3   tstring
  145. sstring3   $                      snormal    tstring
  146.